package com.ld.admin.shiro.service;

import java.util.Map;

import org.apache.shiro.spring.web.ShiroFilterFactoryBean;

public interface IShiroService {

    /**
     * 
     * 初始化权限 -> 拿全部权限
     * 
     * @Title loadFilterChainDefinitionMap
     * @author 吕凯
     * @date 2020年9月24日 下午3:03:45
     * @return Map<String,String>
     */
    Map<String, String> loadFilterChainDefinitionMap();

    /**
     * 
     * 在对uri权限进行增删改操作时，需要调用此方法进行动态刷新加载数据库中的uri权限
     * 
     * @Title updatePermission
     * @author 吕凯
     * @date 2020年9月24日 下午3:03:57
     * @param shiroFilterFactoryBean
     * @param roleId
     * @param isRemoveSession
     *            void
     */
    void updatePermission(ShiroFilterFactoryBean shiroFilterFactoryBean, Integer roleId, Boolean isRemoveSession);

    /**
     * 
     * shiro动态权限加载 -> 原理：删除shiro缓存，重新执行doGetAuthorizationInfo方法授权角色和权限
     * 
     * @Title updatePermissionByRoleId
     * @author 吕凯
     * @date 2020年9月24日 下午3:04:09
     * @param roleId
     * @param isRemoveSession
     *            void
     */
    void updatePermissionByRoleId(Integer roleId, Boolean isRemoveSession);

}